package com.lainiao.servletContext;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 *  ServletContext 对象 的 获取方式
 *      1. 从 request获取
 *      2. 从 session获取
 *      3. 从 ServletConfig获取
 *      4. 直接从 Servlet获取
 *  常用方法
 *      1. 获取当前服务器的 版本信息
 *      2. 获取项目的 真实路径
 */
@WebServlet("/scm")
public class servletContext01_ServletContextMethods extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        /**
         * 获取方式
         */
        // 1. 从 request获取
        ServletContext servletContext01 = request.getServletContext();
        // 2. 从 session获取
        ServletContext servletContext02 = request.getSession().getServletContext();
        // 3. 从 ServletConfig获取
        ServletContext servletContext03 = getServletConfig().getServletContext();
        // 4. 直接从 Servlet获取
        ServletContext servletContext04 = getServletContext();

        /**
         * 常用方法
         */
        // 1. 获取当前服务器的 版本信息
        String serverInfo = request.getServletContext().getServerInfo();
        System.out.println("获取当前服务器的版本信息：" + serverInfo);
        // 2. 获取项目的 真实路径
        String realPath = request.getServletContext().getRealPath("/");
        System.out.println("获取项目的真实路径：" + realPath);
    }
}
